In the Next Generation Network (NGN) with IP (Internet Protocol) Multimedia Sub-system (IMS) as the core, the Session Initiation Protocol (SIP) is adopted as the service control protocol, and all the communication services can be accomplished by cooperation between intelligent terminals of users and application servers (AS) in the network.
FIG. 1 is a schematic diagram of a typical service implementation framework in the Next Generation Network, in which the application server (possibly multiple, respectively used in different services) connects with the Service-Call Session Control Function (S-CSCF) of home networks of users through its interface. The SIP service control messages (identified by the dashed lines) between user terminals A and B will go through the respective application servers (possibly through different application servers depending on the types of user services), and the application servers can implement abundant services by processing the service control messages in various ways. User terminals A and B interchange and negotiate the media parameters supported by them utilizing service messages, so as to establish a media stream connection between them (identified by the solid line), and the media stream can be used to transfer data such as session voice packets.
REFER is a type of special message defined in the SIP protocol, whose function is as follows: a REFER message is sent to user A by user B, carrying main parameters including Refer-To (indicating a third party user C) and method (indicating a method); the user A initiates a certain operation request to user C based on this message (using the method indicated by the method parameter); the REFER message may be used in implementing services such as call transfer, a conference, completion of communications to busy subscriber, three-party session, and so on, and it is an important message in SIP.
The Refer-To parameter in the REFER message may also carry sub-parameters such as a sub-parameter of Replaces whose value is a dialogue identifier, used to indicate that the third party user C release a previous session indicated by this dialogue identifier after implementing a new operation (initiated by user A). The sub-parameter of Replaces can be used to implement some important services, and a typical example is one of the call transfer services: consultative transfer service.
Call transfer is a supplementary service in a communication system: after two users (user A and user B) establish a session in the communication system, one of them (taking user B for example) can request that the current session is transferred to a third party (user C), that is, a session is established between user A and user C and the session channel between user A and user B is disconnected. A common application scenario of this service is: a general manager's secretary (user B) receives all incoming calls (user A), inquires purposes of the other sides, and for those calls that need the general manager to answer in person, utilizes the call transfer service to transfer them to the general manager (user C).
There are two types of call transfer services: one type is consultative transfer, that is, user B first establishes a session with user C before the transfer (inquiring whether user C agrees to have a session with user A), and then initiates a transfer request so that a session is established between user A and user C, and meanwhile, respectively disconnects the session channel between user B and user A and that between user B and user C; the other type is blind transfer, that is, user B does not establish a session with user C first, but directly initiates a transfer request so that a session is established between user A and user C.
FIG. 2 shows a flow chart of signaling in the consultative transfer flow in the technical specification of TISPAN (Telecommunication and Internet converged Services and Protocol for Advanced Network) in the prior art. For simplification, in this chart, network equipments such as the Proxy-Call Session Control Function (P-CSCF) and Service-Call Session Control Function are omitted.
As shown in FIG. 2, user terminal-A (user A) and user terminal-B (user B) are in a session status (the session has an unique identifier D1, to be distinguished from other sessions in the network); the application server of user terminal-A (application server-A) and application server of user terminal-B (application server-B) both participate in this session process in order to provide supplementary services for the respective service objects; and then user terminal-B sets user terminal-A in a call hold status, and initiates and establishes a session channel with user terminal-C (this session has an unique session identifier D2), and the application server-B and application server of the user terminal-C (application server-C) both participate in this session process; and then user terminal-B sets user terminal-C in a call hold status; user terminal-B sends a TRANSFER request to user terminal-A, requesting that a new session is established between user terminal-A and user terminal-C and the session between user terminal-B and user terminal-C indicated by D2 is replaced (steps 1˜3); after user terminal-A indicates that it accepts the request (steps 4˜6), it sends an INVITE request to user terminal-C, requesting that the session indicated by D2 is replaced (steps 13˜24); after the session between user terminal-A and user terminal-C is established, user terminal-C sends a HANG UP request to user terminal-B to disconnect the session between user terminal-B and user terminal-C indicated by D2; during the above process, before user terminal-A prepares to send the INVITE request to user terminal-C and when user terminal-A connects the session channel with user terminal-C, it utilizes notification messages to notify user terminal-B of relevant situations (respectively corresponding to steps 7˜12, 31˜36); finally, user terminal-B sends a HANG UP request to user terminal-A to disconnect the previous session channel between user terminal-A and user terminal-B (steps 37˜42).
It should be noted that in the steps 1˜3 of the above process, the TRANSFER request sent to user terminal-A by user terminal-B is implemented by utilizing the REFER message, with the Refer-To parameter in the REFER message carrying a sub-parameter of Replaces whose value is D2, and the method parameter in the REFER message adopting the INVITE request; whereas, in steps 13˜24, the INVITE request sent to user terminal-C by user terminal-A also includes the parameter of Replaces (whose value is equal to the value of the sub-parameter of Replaces in the REFER request, that is, D2); After user terminal-C receives the INVITE request including the parameter of Replaces (step 16), it first establishes a session with user terminal-A according to a standard session establishment flow (steps 17˜24), and then initiates a release process of the previous session (of which the dialogue identifier is D2) (steps 25˜30).
From the above it can be seen that for the consultative transfer service, as the transferred party in the consultative transfer service and also the indicated party in the REFER message, the user terminal-A has to be able to process the parameter of Replaces, so that the entire consultative transfer flow can be correctly accomplished. However, the parameter of Replaces is an extended parameter in the SIP protocol, and some IMS intelligent terminals that emerged earlier do not support the parameter of Replaces. For these IMS intelligent terminals that do not support the parameter of Replaces, according to the prior art, they cannot be taken as the transferred party to implement a consultative transfer service.
To sum up, for those IMS intelligent terminals that do not support extended parameters in the REFER message (simply referred to as special intelligent terminals hereinafter), they will be greatly restricted in using the NGN services.